package com.yuandian.management.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.management.entity.ConfGraph;
import com.yuandian.api.management.entity.ConfNodeProperty;
import com.yuandian.api.management.entity.ConfSegment;
import com.yuandian.api.management.entity.ConfSegmentResourceRelation;
import com.yuandian.bpm.common.core.util.R;
import com.yuandian.management.vo.ITRoadVo;

import java.util.List;
import java.util.Map;

/**
 * 业务配置表-Service接口
 *
 */
public interface ITRoadMapService  {


	/**
	 * 通过系统id 获取it路径图
	 * @param systemId 系统id
	 * @return 通用返回对象
	 */
	List<Map<String, Object>> getRoadMap(Integer systemId);

	/**
	 * 增加节点
	 * @return 通用返回对象
	 */
	R<String> addNode(ITRoadVo itRoadVo);

	/**
	 * 增加节点连线
	 * @return 通用返回对象
	 */
	R<String> addLink(ConfGraph confGraph);

	/**
	 * 删除节点连线
	 * @return 通用返回对象
	 */
	R<String> removeLink(ConfGraph confGraph);

	/**
	 * 删除节点
	 * @return 通用返回对象
	 */
	R<String> removeNode(ConfSegment confSegment);

	/**
	 * 节点移动位置
	 * @return 通用返回对象
	 */
	R<String> setLocation(ConfNodeProperty confNodeProperty);

	/**
	 * 供网端监控详情 远程调用的 it路径图接口
	 * @return 通用返回对象
	 */
	List<Map<String, Object>> segmentMonitorDetailItRoadGraph(ConfNodeProperty confNodeProperty);

	/**
	 * 获取服务资源
	 * @return 通用返回对象
	 * @param confNodeProperty
	 */
	Page<Map<String,Object>> getComponentServerResources(ConfSegmentResourceRelation confNodeProperty);

	/**
	 * 添加组件资源
	 * @return 通用返回对象
	 */
	R<String> addComponent(ConfSegmentResourceRelation confSegmentResourceRelation);

	/**
	 * 删除组件资源
	 * @return 通用返回对象
	 */
	R<String> deleteComponentResourceByIds(List<Integer> ids);


	/**
	 * 修改网端节点
	 * @return 通用返回对象
	 */
	R<String> updateNodeById(ITRoadVo itRoadVo);
}